讓我們從解釋TensorFlow開始。
TensorFlow是一個運用有向圖(Directed graphs)來進行數值計算的開源、高性能庫。這不僅僅是關於機器學習,而是關於任何數值計算。實際上,人們已經將TensorFlow用於各種GPU計算。例如,您可以使用TensorFlow求解偏微分方程,這在流體動力學等領域很有用。
Tensorflow作為數字程序庫很有吸引力,因為您可以使用高級語言(例如Python)編寫比賽代碼,並以快速的方式執行它。
TensorFlow的工作方式是創建有向無環圖DAG。
在此示意圖中,節點表示數學運算。諸如加、減、乘等運算。功能也更加複雜。例如你在這裡看到softmax矩陣乘法等等,都是有向無環圖DAG的一部分的數學運算。連接DAG中的節點的是數學運算的邊緣(edge),輸入和輸出。
邊緣代表數據的數組。本質上,交叉熵的計算結果是偏置加法運算的三個輸入之一,並且偏置和運算的輸出是沿著矩陣乘法運算發送的,在圖中為matmul
。對於matmul
的其他輸入,你需要輸入矩陣乘法。另一個輸入是變量與權重。
在數學中,一個簡單的數字(例如3或5)稱為標量而向量是此類數字的一維數組。在物理學中,向量是一個量級和方向。但是在計算機科學中,我們使用向量來表示一維數組。二維數組是一個矩陣,但是三維數組我們只稱其為3D張量。因此,標量、向量、矩陣、3D張量、4D張量等等。
張量是數據的n維數組。因此,你在TensorFlow中的數據就是張量。它們流過有向無環圖,因此流過TensorFlow。